Make sysrq work.
Signed-off-by: <mark.williamson@cl.cam.ac.uk>
else if ( (pending_sysrq == -1) &&
(msg->subtype == CMSG_SHUTDOWN_SYSRQ) )
{
- pending_sysrq = msg->msg[0];
+ pending_sysrq = ((shutdown_sysrq_t *)&msg->msg[0])->key;
schedule_work(&sysrq_work);
}
else
P2C(mem_request_t, target, u32);
P2C(mem_request_t, status, u32);
break;
+ case TYPE(CMSG_SHUTDOWN, CMSG_SHUTDOWN_SYSRQ):
+ P2C(shutdown_sysrq_t, key, char);
+ break;
}
if ( dict_items_parsed != PyDict_Size(payload) )
/* SHUTDOWN_suspend. */
#define CMSG_SHUTDOWN_SYSRQ 3
+typedef struct {
+ char key; /* 0: sysrq key */
+ char __pad[3]; /* 1: */
+} PACKED shutdown_sysrq_t; /* 4 bytes */
/******************************************************************************
* MEMORY CONTROLS